package com.mjf.ue.vo;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.util.List;

/**
 * <p>
 * u8返回数据结构
 * </p>
 *
 * @author chenshoumeng
 * @date 2024/12/18 15:18
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class U8ProductInListResultVO {

    // 错误码 0-成功
    private String errcode;
    // 错误信息
    private String errmsg;
    // 总记录数
    private String row_count;
    // 当前页码
    private String page_index;
    // 当前页数量
    private String page_count;
    // 每页记录数
    private String rows_per_page;
    // 数据
    private List<ProductInfo> productinlist;

    /**
     * 产品信息
     */
    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class ProductInfo {
        private String vouchtype; // 	string		单据类型编码
        private String businesstype; // 	string		业务类型
        private String warehousecode; // 	string		仓库编码
        private String warehousename; // 	string		仓库名称
        private String date; // 	date		单据日期
        private String code; // 	string		单据号
        private String receivecode; // 	string		收发类别编码
        private String receivename; // 	string		收发类别名称
        private String departmentcode; // 	string		部门编码
        private String departmentname; // 	string		部门名称
        private String personcode; // 	string		业务员编码
        private String saletypecode; // 	string		销售类型编码
        private String customercode; // 	string		客户编码
        private String handler; // 	string		审核人
        private String memory; // 	string		备注
        private String maker; // 	string		制单人
        private String define1; // 	string		单据头自定义项1
        private String define2; // 	string		单据头自定义项2
        private String define3; // 	string		单据头自定义项3
        private String define4; // 	date		单据头自定义项4
        private String define5; // 	number		单据头自定义项5
        private String define6; // 	date		单据头自定义项6
        private String define7; // 	number		单据头自定义项7
        private String define8; // 	string		单据头自定义项8
        private String define9; // 	string		单据头自定义项9
        private String define10; // 	string		单据头自定义项10
        private String define11; // 	string		单据头自定义项11
        private String define12; // 	string		单据头自定义项12
        private String define13; // 	string		单据头自定义项13
        private String define14; // 	string		单据头自定义项14
        private String define15; // 	number		单据头自定义项15
        private String define16; // 	number		单据头自定义项16
        private String auditdate; // 	date		审核日期
        private String personname; // 	string		业务员名称
        private U8ProductInListInfoResultVO info; // 单据明细
    }

    @Data
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class U8ProductInListInfoResultVO {

        private String errcode; //	string	 	错误码，0 为正常。
        private String errmsg; //	string	 	错误信息。
        private Productin productin;


        @Data
        @JsonIgnoreProperties(ignoreUnknown = true)
        public static class Productin {
            private String businesstype; //	string		业务类型
            private String warehousecode; //	string		仓库编码
            private String warehousename; //	string		仓库名称
            private String date; //	date		单据日期
            private String code; //	string		产成品入库单编码
            private String receivecode; //	string		收发类别编码
            private String receivename; //	string		收发类别名称
            private String departmentcode; //	string		部门编码
            private String departmentname; //	string		部门名称
            private String personcode; //	string		业务员编码
            private String saletypecode; //	string		销售类型编码
            private String customercode; //	string		客户编码
            private String arrivedate; //	date		到货日期
            private String handler; //	string		审核人
            private String memory; //	string		备注
            private String maker; //	string		制单人
            private String define1; //	string		单据头自定义项1
            private String define2; //	string		单据头自定义项2
            private String define3; //	string		单据头自定义项3
            private String define4; //	date		单据头自定义项4
            private String define5; //	number		单据头自定义项5
            private String define6; //	date		单据头自定义项6
            private String define7; //	number		单据头自定义项7
            private String define8; //	string		单据头自定义项8
            private String define9; //	string		单据头自定义项9
            private String define10; //	string		单据头自定义项10
            private String define11; //	string		单据头自定义项11
            private String define12; //	string		单据头自定义项12
            private String define13; //	string		单据头自定义项13
            private String define14; //	string		单据头自定义项14
            private String define15; //	number		单据头自定义项15
            private String define16; //	number		单据头自定义项16
            private String auditdate; //	date		审核日期
            private String personname; //	string		业务员名称
            // InfoEntry
            private List<InfoEntry> entry;
        }

        /**
         * 产品信息
         */
        @Data
        @JsonIgnoreProperties(ignoreUnknown = true)
        public static class InfoEntry {
            private String barcode; // 	string	entry	条形码
            private String inventorycode; // 	string	entry	产品编码
            private String free1; // 	string	entry	存货自由项1
            private String free2; // 	string	entry	存货自由项2
            private String free3; // 	string	entry	存货自由项3
            private String free4; // 	string	entry	存货自由项4
            private String free5; // 	string	entry	存货自由项5
            private String free6; // 	string	entry	存货自由项6
            private String free7; // 	string	entry	存货自由项7
            private String free8; // 	string	entry	存货自由项8
            private String free9; // 	string	entry	存货自由项9
            private String free10; // 	string	entry	存货自由项10
            private String quantity; // 	number	entry	数量
            private String cmassunitname; // 	string	entry	主计量单位
            private String assitantunit; // 	string	entry	库存单位码
            private String assitantunitname; // 	string	entry	库存单位
            private String irate; // 	number	entry	换算率
            private String number; // 	number	entry	件数
            private String price; // 	number	entry	单价
            private String cost; // 	number	entry	金额
            private String serial; // 	string	entry	批号
            private String define22; // 	string	entry	表体自定义项1
            private String define23; // 	string	entry	表体自定义项2
            private String define24; // 	string	entry	表体自定义项3
            private String define25; // 	string	entry	表体自定义项4
            private String define26; // 	number	entry	表体自定义项5
            private String define27; // 	number	entry	表体自定义项6
            private String define28; // 	string	entry	表体自定义项7
            private String define29; // 	string	entry	表体自定义项8
            private String define30; // 	string	entry	表体自定义项9
            private String define31; // 	string	entry	表体自定义项10
            private String define32; // 	string	entry	表体自定义项11
            private String define33; // 	string	entry	表体自定义项12
            private String define34; // 	number	entry	表体自定义项13
            private String define35; // 	number	entry	表体自定义项14
            private String define36; // 	date	entry	表体自定义项15
            private String define37; // 	date	entry	表体自定义项16
            private String rowno; // 	number	entry	行号
        }

    }


}
